Skip to content

DynaCLR misc: CSV metadata sidecar, data-path profiling, DDP logging#485

Open
edyoshikun wants to merge 4 commits into
mainfrom
dynaclr-models-misc
Open

DynaCLR misc: CSV metadata sidecar, data-path profiling, DDP logging#485
edyoshikun wants to merge 4 commits into
mainfrom
dynaclr-models-misc

Conversation

@edyoshikun

Copy link
Copy Markdown
Member

Catch-all branch for DynaCLR work that is independent of the requeue (#478) and rescale/LOT-correction (#424) PRs. Four atomic commits:

  • feat(viscy-data): CSV metadata sidecar for write-protected datasets — new viscy_data.meta_csv module and a csv_dir option threaded through the preprocessing path (VisCyTrainer.preprocess, generate_normalization_metadata, QC metrics, dynaclr cell-index CLI + Nextflow module, the parquet reader, and airtable prepare). Lets datasets mounted read-only be prepared/trained by writing normalization/QC stats to per-store CSV sidecars instead of the zarr .zattrs. qc gains a viscy-data dep; uv.lock updated (also drops the <3.14 Python cap).
  • perf(dynaclr): capture TensorStore I/O metrics in data-path profilers
  • fix(dynaclr): stabilize DDP logging and hparam checkpointing in enginesave_hyperparameters(ignore=...), sync_dist on hparam logging, skip empty sample grids.
  • docs: Reef/Kelp vs Bruno note in CLAUDE.md — links docs/clusters/reef.md, which is added on lightning config for requeing jobs on a preempted slurm partition #478; the link resolves once both merge into dynaclr_models.

🤖 Generated with Claude Code

Eduardo Hirata-Miyasaki and others added 4 commits July 21, 2026 23:13
profile_stages.py records file bytes_read/read counts and chunk-cache reads
after warmup so read amplification is measured directly rather than inferred
from tensor shapes; profile_num_workers.py defaults to the Stage-1 self-
positive recipe for a matched sweep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
save_hyperparameters(ignore=...) so ContrastiveModule/BetaVaeModule
checkpoints carry their config; add sync_dist to hparam logging and skip
empty sample grids to avoid DDP logging desync.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add viscy_data.meta_csv (build_provenance_fields, metadata_to_rows,
write_meta_rows_csv, read_meta_rows_csv) and thread a csv_dir option through
the preprocessing path so normalization/QC statistics can be written to and
read from per-store CSV sidecars instead of the zarr .zattrs, opening the
store read-only. Datasets mounted without write access can then be prepared
and trained on.

Wires csv_dir through VisCyTrainer.preprocess, generate_normalization_metadata,
the QC metrics run + config, the dynaclr cell-index preprocessing (CLI +
Nextflow module + workflow) and its parquet reader, and airtable prepare
(check_preprocessed + batch discovery). qc gains a viscy-data dependency for
the shared module; uv.lock updated accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant